/*
 * This file is Copyright 2002-2006 Loyola University Chicago,
 * Department of Computer Science and the Emerging Technologies Laboratory.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License via
 *    http://www.apache.org/licenses/LICENSE-2.0.
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

package com.citep.business;

import java.util.Set;

/**
 * The AccountCategory Interface represents a category.  Accounts may be placed in these 
 * categories.  Accounts can be in one or more categories or none at all.  The 
 * AccountCategory replaces the the AccountGroup hierarchy, and is designed to add more 
 * flexibility. 
 * 
 * <br><br>Any changes made to an AccountCategory object through setters or 'add'
 * methods will not be persisted until the <code>updateCategory()</code> method in the 
 * AccountCategoryManagerIF is called on the object.
 *
 *@author     yogesh, mbone, bgonzalez
 *@since      June 18, 2003
 *@version    1.0
 *@see citep.interfaces.AccountCategoryManager
 */

public interface AccountCategory {
	public int getId();
	public void setId(int id);
	
	public String getDescription();
	public void setDescription(String description);
	
	public String getName();
	public void setName(String name);
	
	public boolean isEnabled();
	public void setEnabled(boolean enabled);

	public Set<Account> getAccounts();
}